home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 September / Macworld (1997-09).dmg / Serious Software / Cherwell Scientific Demos / pro Fit / pro Fit 5.0 demo (fpu).sea / pro Fit 5.0 demo (fpu) / Functions & Programs / •Gadgets / drawing macros / arrow next >
Text File  |  1996-06-01  |  1KB  |  48 lines

  1. {
  2.     This program draws the outline of a (big) arrow at the last clicked
  3.     point in the drawing window.
  4.     
  5.     This program does not bring up any dialog box. The dimensions of the
  6.     arrow and its orientation are set in the procedure initialize, below.
  7.     
  8.     To use the program, hit cmd-L (or click the Add button), look at its 
  9.     keyboard equivalent in the Misc menu, clik in the drawing window, 
  10.     and run the program. Then click somewhere else and run the program again. 
  11.  
  12.  Note that in contrast to pro Fit's arrow styles in the tool palette,
  13.  the arrow drawn by this program is a closed polygon that can be colored
  14.  and filled in as many ways as you like.
  15. }
  16.  
  17. program drawArrow;
  18. var ang,h,v,
  19.                 thick,shaftlength,tiplength,tipwidth:real;
  20.  
  21. procedure initialize;
  22. begin
  23.         shaftlength:=35;            { the length of the body of the arrow }
  24.         thick:=3;                                        { its half thickness }
  25.         tiplength:=15;                    { the length of the tip }
  26.         tipwidth:=5;                            { the width of the tip }
  27.         ang:=-100;            { the orientation of the arrow in degrees }
  28.         ang:=ang*pi/180;         { move to radians}
  29. end;
  30.  
  31. procedure l(x,y:real);
  32. { performs a rotation of the coordinates and issues a "line" command }
  33. begin
  34.     line(cos(ang)*x+sin(ang)*y,-sin(ang)*x + cos(ang)*y);
  35. end;
  36.  
  37. begin
  38.         GetClickedCoord(h,v);
  39.   openpoly(0,1);
  40.   moveto(h,v);
  41.   l(shaftlength,0);
  42.   l(0,-tipwidth);
  43.   l(tiplength,tipwidth+thick);
  44.   l(-tiplength,tipwidth+thick);
  45.   l(0,-tipwidth);
  46.   l(-shaftlength,0);
  47.   closepoly;
  48. end;